דרי שות הגדרת Requirements Definition מבוא הגדרת דרישות UML ניתוח מונחה עצמים - UML תכן מונחה עצמים - מרכיבי תכן קידוד ושילוב אימות ותיק וף אחזקת תוכנה מחזורי חיים ואבולוציה תכנון פרויקט תוכנה הגדרת דרישות - 1 מה עומד על הפרק? היכ ן נמצאות הדר יש ות? מטרת שלב הדריש ות טכנ יק ות למיצ ו י ד ר יש ות תכונ ות הדר יש ות הגדרת דרישות - 2 1 ד "ר עמיר תומר
היכן נמצאות הדרי שות? צרכי הלקוח מקור הדרישות ודרישות בעלי עניין (stakeholders) נוספים הדרישות מתפתחות ומתעדנות תוך כדי תכנון בפיתוח: כל שלב/רמה מציב דרישות לשלבים הבאים / לרמות הבאות נותן מענה (פתרון) לדרישות השלבים הקודמים הדרישות נמצאות בתוך המפרטים כתובות בשפה המובנת לשני הצדדים אך לא בהכרח לרמ ות האחר ות הדרישות מוקצות (allocated) למרכיבי הפתרון חי י בת לה י ו ת ז י קה בר ורה ב י ן הפתר ו ן לדר יש ו ת בפרק זה נע סוק בעיקר בדר יש ות הלקו ח הגדרת דרישות - 3 איך בוני ם בית? דרישות בעלי עניין נוספים: - דרישות רישוי - דרישות תשתיות (ממשקים) דרישות הלקוח: - דרישות מגורים - דרישות שירותים - דרישות חזות - אופציותעתידיות ארכיטקטורה ומפרט: - תכנית קירות, רצפות, גגות - תכנית חזיתות - תכנית נקודות חשמל ומים - תכנית פתחים, מדרגות מענה/פתרון דרישות דרישות תכנון: - תכנית קונסטרוקציה - תכניות אינסטלציה (חשמל, מים, ביוב...) בניה: בית הגדרת דרישות - 4 2 ד "ר עמיר תומר
. תוכנה בוני ם כמו בית.. בעלי עניין נוספים: - דרישות תקנים - דרישות תאימות (ממשקים) דרישות הלקוח: - דרישות פונקציונליות - דרישות ביצועים - דרישות שימוש - אופציותעתידיות מפרט דרישות התוכנה: - תרחישי פעולה - ארכיטקטורה לוגית - ממשקים - ישויות מידע - קונספט הפעלה דרישות דרישות מענה/פתרון תכן התוכנה: - מודולים וממשקים פיזיים - מבני נתונים - אלגוריתמים קידוד: תוכנה הגדרת דרישות - 5 (Requirements הגדרת דרי שות Definition) מטרת הפעילו ת "תרגום" צרכי הלקוח והאילוצים לאוסף של דרישות מזוהות וברורות מהות ה פעילות הבנת צרכי הלקוח עריכת רישום מדוייק ומפורט של הדרישות והאילוצים המשקפים צרכים אלה הבנה (משותפת!) זיהוי ויישוב חסרים, סתירותוכפילויות של הבעיה קביעת סדר עדיפויות קביעת אופן הוכחת העמידה בדרישות השגת הסכמה הדדית בין הלקוח והמפתח על התכולה תוצרים בסיס דרישות הלקוח חשוב לוודא היטב: דרישות פונקציונליות צריך מה הלקוח יכולות, פונקציות, שירותים התנהגות, אינטראקציה, תהליכים ולא רק דרישות לא-פונקציונליות רוצה מה הלקוח ביצועים אמינות וזמינות שימוש במרכיבים קיימים הנחיות תכן הגדרת אופני מימוש הגדרת דרישות - 6 3 ד "ר עמיר תומר
ההבדל בין דרי ש ות לבין תכן דרישות מה צריכה התוכנה לעשות מחוייבות חד-משמעית תכן איך תעמוד התוכנה בדרישות פתרון נבחר מבין חלופות שונות תכן = דרישת/אילוץ מהדרישות כחלק הלקוח, המוכתבת מראש ע ע"יי חלופת תכן הגדרת דרישות - 7 הגדרות והוא או של התכן... פונקציונלי תפעולי, מאפיין או אילוץ, המגדיר משפט דרישה היא חיוני לקבלת המוצר או התהליך. משפט חייב להיות בכתב! דרישה שאינה כתובה לא מאפשרת בקרה ומעקב יכול להיות גם בשפה גרפית (למשל דיאגרמת מצבים) מאפיין או אילוץ דוגמה למאפיין: "המשתמש יוכל לשלוח מסר ישיר למנהל המערכת" דוגמה לאילוץ: "בסיס הנתונים הקיים יקושר למערכת החדשה" סיווג דרישה פונקציונלית: משפיעה על יכולות התוכנה "התוכנה תוכל להפיק דו"ח פעילות לכל פרק זמן מוגדר" דרישה תפעולית: משפיעה על אופן פעולת התוכנה "בסיום כל משמרת יופק דו"ח פעילות לתקופת המשמרת" דרישת תכן: משפיעה על אופן המימוש שלהתוכנה "המשתמש י וכל להפעיל את התוכנה דרך כל דפדפן אינטרנט סטנדרטי" סיווג מקובל אחר דרישה פונקציונלית: דרישה שתיענה ע"י כתיבת קוד ייעודי למימושה דרישה לא-פונקציונלית: דרישה שתיענה כפועל יוצא של ביצוע הקוד הפונקציונלי * IEEE/EIA 1220 - Standard for Application and Management of the Systems Engineering Process הגדרת דרישות - 8 4 ד "ר עמיר תומר
תכונות הדרי שות (1) (discrete and identified) בדידוֹת ומזוהות ניתן לקרוא כל דרישה כמשפט שלם באופן עצמאי זיהוי ייחודי וחד-ערכי לכל דרישה הזיהוי נשמר לאורך כל מחזור החיים גם אם הדרישה מבוטלת! משמעיוֹת (unambiguous) חד--ד לא סביר שמוצר, אשר הדרישות לגביו ניתנות לפירוש באופנים שונים, עונה על צרכי הלקוח. שלמוֹת (complete) הדרישות מכסות בצורה מוגדרת היטב את כל היבטי התוכנה זהירות מ- TBD (to be defined) ע קביוֹת (consistent) לא ניתן לממש מוצר בעל דרישות סותרות הגדרת דרישות - 9 תכונות הדרי שות (2) (trace to עוקבות למקור origin) זיהוי מקורה של כל דרישה דרישות מפורשות (explicit) דרישות נגזרות (derived) (avoid נ מנעוֹת מתכן design) כל קביעה מפורשת של רכיב, אלגוריתם וכו' מצמצמת את מרחב האפשרויות בתכן יש לוודא שאילוצי/דרישות התכן משקפים צורך אמיתי (testable/measurable) בדיקתיוֹתבדיקתיוֹת/מדידוֹת נדרשת קביעה מפורשת כיצד אפשר יהיה להוכיח את העמידה בדרישה אנליזה סימולציה הדגמה במעבדה הדגמה בהפעלה מבצעית הגדרת דרישות - 10 5 ד "ר עמיר תומר
בסיס דרי שות טבלה של הדרישות עם כל מאפייניהן: בסיס נתונים / זיהוי ייחודי, חח"ע, נשמר גם כשהדרישה מבוטלת נוסח הדרישה באופן ברור וחד משמעי מקור הדרישה (אסמכתא כתובה!) רציונל: למה זה נדרש? כיצד נקבעו הערכים? עדיפות: לפחות קריטית / לא-קריטית אופי הדרישה: תפעולית, פונקציונלית, תכן,... סוג הדרישה: מאפיין (feature) או אילוץ (constraint) רמת הקושי / סיכון טכני עלות אחריות / בעלות אופן ההוכחה / הבדיקה סטטוס... (מאפיינים נוספים על פי הצורך) הגדרת דרישות - 11 טכניקות למיצוי דר יש ות לקוח (requirements elicitation) ראי ו ן עבודה בצ ו ות משותף QFD מיצ ו י מטקסט כת וב שימ וש בב- CASE לפעמים "הלקוח " הוא הנדסת המערכת ואז מדובר על "דרישות המערכת המוקצות לתוכנה" הגדרת דרישות - 12 6 ד "ר עמיר תומר
סוגי דרישות שבי ע ו ת רצו ן הלק ו ח מיד ת העמ ידה בדריש ו ת דרישות מדליקות דרישות מרומזות דרישות רגילות הגדרת דרישות - 13 ראיו ן עם הלקוח (Gause & Weinberg, 1989) הפתרון הבנת שאלות לצורך מי עומד מאחורי בקשת העבודה? מי י שתמש בפתרון? מה תהיה התועלת הכלכ לית ש ל פתרון מוצ לח? האם יש מקור אחר לפתרון הנדר ש לך? הפתרון הערכת שאלות לצורך כיצד תאפיין פלט "טוב" שיופק ע"י פתרון מוצלח? לאילו בעיות נועד הפתרון לתת מענה? האם תוכל להראות (או לתאר) את הסביבה בה ישמש הפתרון? יעילות הראיון שאלות לצורך הערכת האם אתה האדם הנכון לענות על שאלות אלה? האם התשובות הן "רשמיות"? האם שאלותי רלוונטיות לבעיותיך? האם אני שואל יותר מדי שאלות? האם יש מי שהו אחר שיכ ול לספק מידע נוסף? האם יש מ שהו נוס ף שעלי ל שאול אותך? הגדרת דרישות - 14 7 ד "ר עמיר תומר
האם הב נתי נ כון את ד רישות הלקוח? 1 2 3 1999-2006, 4 5 6 הגדרת דרישות - 15 QFD = Quality Function Deployment שירותים או תהליכים מתודולוגיה התומכת בפיתוח מוצרים, מבוססת על צורכי הלקוחות מבוצעת בעבודת צוות רב תחומי לקוחות שיווק משתמשים מפתחים תמיכה איכות בעלי עניין נוספים, על פי הצורך התמ קדות בשביעות רצון ה לקוח מה הדברים בעלי הערך הרב ביותר ללקוח? "תרגום" ערכים אלה למשמעויות הנדסיות הגדרת דרישות - 16 8 ד "ר עמיר תומר
מפל האיכות - QFD תכ ונ ות המ וצר תכנון המוצר צור כ י ה לק וח Deployment תכ ונ ות החל ק ים פריסת בקרת הייצור תכנון המימוש תכונ ות הת הלי כים תכנון התהליכים תכ ונ ות החל ק ים החלקים תכ ונ ות המ וצר Aggregation תכ ונ ות התה ל יכ י ם השקף באדיבות דר' עמי הרי הגדרת דרישות - 17 הבית של האיכות - QFD השקף באדיבות דר' עמי הרי 4 ניתוח זיקות בין המאפיינים לבין עצמם 8 הגדרת ה "איך" - מאפייני המוצר הצגת מוצרי הייחוס עדיפות הלקוחות הגדרת ה"מה": צורכי הלקוחות ניתוח זיקות בין צורכי הלקוחות ומאפייני המוצר 1 5 2 החשיבות היחסית של המאפיינים הערכת ביצועי מוצרי הייחוס ערכי יעד למאפי ינ ים 6 7 9 3 הגדרת דרישות - 18 9 ד "ר עמיר תומר
מיצוי דרישות מתוך טקסט כתו ב מסמך בסיס לדוגמה: RFP = Request for Proposal הוצאת משפטי מפתח לתוך רש ימה פי ר וק המשפטים לדר יש ות בדי ד ות ומזוה ות קביעת מאפי י נ ים לדר יש ות הגדרת דרישות - 19 לניהול דרישות CASE RequisitePro (Rational Software / IBM) מיצוי דרישות מתוך טקסט בעותק-רך בניית מאגר דרישות טבלת מעקב לדרישות מקור עץ דרישות חיפוש ושליפה לפי שאילתות ניהול ומעקב אחר מילוי הדרישות - עבודת צוות שילוב עם כלי ניתוח ותכן הגדרת דרישות - 20 10 ד "ר עמיר תומר
מיצוי דר יש ות מתוך טקסט - RequisitePro מיצ ו י דר יש ות מתוך ט קסט בע ותק-רךך שילוב עם מעבד התמלילים הדרישות נשמרות בתוך הטקסט עצמו יצירת הפניות ממאגר הדרישות אל הטקסט 1999-2006, הגדרת דרישות - 21 סימון ו יצירת דרי ש ות - RequisitePro 3.1.4. Administrative Functions 3.1.4.1. Banking Information [PR6 The QBS The QBS system system shall allow shall allow updates updates to customer customer information information only only in the in Customer the Customer Information Information screen. screen.] All other screens shall have customer information updated from the Customer Information Screen. All balance information shall be updated systematically. 3.1.4.2. Reports מתוך Project The Learning RequisitePro Evaluation The QBS system shall provide the following reports: Report: Complete customer history per account. Report: Customer demographic report. Report: Customer listing with options to sort by, name, company, interest rate, and origination date. הגדרת דרישות - 22 11 ד "ר עמיר תומר
ריש ום דרי שה - RequisitePro פרטי ם מאפיינים הגדרת דרישות - 23 הגדרת סוגי דרישות ומאפייניהם - RequisitePro מאפייני דרישות קדימות (priority) סטטוס קושי יציבות... הגדרת דרישות - 24 12 ד "ר עמיר תומר
מאפיינ ים מטריצת הדריש ות - - RequisitePro הגדרת דרישות - 25 עץ מעקב מטריצת הדריש ות - - RequisitePro הגדרת דרישות - 26 13 ד "ר עמיר תומר
מעקב דריש ות נגזרות - RequisitePro הגדרת דרישות - 27 לנו...? אז מה היה ü ü ü ü היכ ן נמצאות הדר יש ות? מטרת שלב הדריש ות טכנ יק ות למיצ ו י ד ר יש ות תכונ ות הדר יש ות הגדרת דרישות - 28 14 ד "ר עמיר תומר
וכעת נע בור לל... ניתוח מונחה עצמים עם UML הגדרת דרישות - 29 15 ד "ר עמיר תומר